Markdown 很好讀,但要回答「我上次研究哪家公司」「這份報告用哪次資料」,光靠檔名很快就不夠。需要一個能把資料關聯起來的索引。
SQLite 把資料存在本機檔案,不必先架資料庫服務。股票、筆記、來源和報告各有自己的紀錄,再透過 ID 關聯。SQL 是查詢資料的語言,Python 標準庫提供 sqlite3。Python sqlite3 文件
依 docs/PROJECT-BRIEF.md 的 SQLite 契約,
新增 research init,建立 .local/research.sqlite3。
建立 stocks、batches、observations、sources、notes、reports。
使用 sqlite3,開啟外鍵,以 user_version=1 標示 schema。
init 可重跑,不清空資料;遇較新 schema 停止。
DB 路徑以研究根目錄解析;CLI 說明要能找到資料位置。
測試首次 init、重複 init、外鍵失敗、較新版本拒絕。
先不連線、不填入示範股票或假價格。
PowerShell:
.\.venv\Scripts\research.exe init
.\.venv\Scripts\research.exe init
.\.venv\Scripts\python.exe -c "import sqlite3; c=sqlite3.connect('.local/research.sqlite3'); print(c.execute('PRAGMA user_version').fetchone()); print(c.execute('SELECT name FROM sqlite_master WHERE type=?', ('table',)).fetchall()); c.close()"
確認相同資料庫仍存在,而非每次建立一個新檔。
初始化先刪掉舊資料庫再重建,測試看起來總是乾淨,研究筆記卻會消失。用含有一筆測試紀錄的暫存資料庫重跑 init,確認資料保留。
實測後補:資料表清單、測試結果,以及自己理解的兩個表之間的關係。
明天建立真正的研究筆記,學會保存問題與假設。